/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @param val int整型 
 * @return ListNode类
 */
 function deleteNode( head ,  val ) {
  // write code here
  // 定义一个current 链接 头结点
  // var newHead = head
  var current = head
  // 定义一个current之前的节点
  var previous = head
  // 如果head不存在 return 
  // 如果要删除的是第一个
  while(current.val !== val){
    // if(current.val !== val){
      previous = current
      current = current.next
    // }else{
      // 判断是不是第一个
    // }
  }
  if(current.val === head.val){
    head = current.next
  }else if(!current.next){
    // 如果是最后一个
  }else{
    previous.next = current.next
  }
  return head
}
module.exports = {
  deleteNode : deleteNode
};